home *** CD-ROM | disk | FTP | other *** search
/ PC Elektro 3 / PC-Elektro-3-cd1.bin / KBan 2.0 / KBANSRC.LZH / SRC / PROG / DLGBMP.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1997-09-24  |  3.4 KB  |  122 lines

  1. // the implementation of class CSaveAsBitmapDialog
  2. // Copyright (C) 1997 Kazutaka Hirata <khirata@jove.acs.unt.edu>
  3.  
  4. #include "stdafx.h"
  5. #include "kban.h"
  6. #include "dlgbmp.h"
  7.  
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13.  
  14. BEGIN_MESSAGE_MAP(CSaveAsBitmapDialog, CDialog)
  15.     //{{AFX_MSG_MAP(CSaveAsBitmapDialog)
  16.     ON_BN_CLICKED(IDC_BROWSE, OnBrowse)
  17.     ON_BN_CLICKED(IDC_LDRILL_FLAG, OnLimitDrillFlag)
  18.     ON_EN_CHANGE(IDC_DPI, OnChangeDpi)
  19.     //}}AFX_MSG_MAP
  20. END_MESSAGE_MAP()
  21.  
  22. CSaveAsBitmapDialog::CSaveAsBitmapDialog(const SAVEASBMP_INFO& sbinfo, CWnd* pParent /*=NULL*/)
  23.     : CDialog(CSaveAsBitmapDialog::IDD, pParent)
  24. {
  25.     m_nDPI = sbinfo.m_dpi;
  26.     m_szFname = sbinfo.m_fname;
  27.     m_bLimitDrillFlag = sbinfo.m_limit_drill.get();
  28.     m_nLimitDrillSize = sbinfo.m_limit_drill_size;
  29.     m_bFill = sbinfo.m_fill.get();
  30.     m_bHole = sbinfo.m_hole.get();
  31.     m_bPCommon = sbinfo.m_layer[LAYER_PATTERN_COMMON].get();
  32.     m_bPTop    = sbinfo.m_layer[LAYER_PATTERN_TOP   ].get();
  33.     m_bPBottom = sbinfo.m_layer[LAYER_PATTERN_BOTTOM].get();
  34.     m_bSTop    = sbinfo.m_layer[LAYER_SILK_TOP      ].get();
  35.     m_bSBottom = sbinfo.m_layer[LAYER_SILK_BOTTOM   ].get();
  36. }
  37.  
  38. void CSaveAsBitmapDialog::DoDataExchange(CDataExchange* pDX)
  39. {
  40.     CDialog::DoDataExchange(pDX);
  41.     //{{AFX_DATA_MAP(CSaveAsBitmapDialog)
  42.     DDX_Check(pDX, IDC_HOLE, m_bHole);
  43.     DDX_Check(pDX, IDC_FILL, m_bFill);
  44.     DDX_Text(pDX, IDC_FNAME, m_szFname);
  45.     DDX_Check(pDX, IDC_PBOTTOM, m_bPBottom);
  46.     DDX_Check(pDX, IDC_PCOMMON, m_bPCommon);
  47.     DDX_Check(pDX, IDC_PTOP, m_bPTop);
  48.     DDX_Check(pDX, IDC_SBOTTOM, m_bSBottom);
  49.     DDX_Check(pDX, IDC_STOP, m_bSTop);
  50.     DDX_Check(pDX, IDC_LDRILL_FLAG, m_bLimitDrillFlag);
  51.     DDX_Text(pDX, IDC_DPI, m_nDPI);
  52.     DDX_Text(pDX, IDC_LDRILL_SIZE, m_nLimitDrillSize);
  53.     //}}AFX_DATA_MAP
  54. }
  55.  
  56. CEdit& CSaveAsBitmapDialog::ctlFname()
  57. {
  58.     return *(CEdit*)GetDlgItem(IDC_FNAME);
  59. }
  60.  
  61. CButton& CSaveAsBitmapDialog::ctlLimitDrillFlag()
  62. {
  63.     return *(CButton*)GetDlgItem(IDC_LDRILL_FLAG);
  64. }
  65.  
  66. CEdit& CSaveAsBitmapDialog::ctlLimitDrillSize()
  67. {
  68.     return *(CEdit*)GetDlgItem(IDC_LDRILL_SIZE);
  69. }
  70.  
  71. void CSaveAsBitmapDialog::OnBrowse()
  72. {
  73.     // gets the current state of the controls
  74.     UpdateData(TRUE);
  75.  
  76.     CFileDialog dlg(false, "bmp", m_szFname,
  77.         OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY,
  78.         "Bitmap Files (*.bmp)|*.bmp|All Files (*.*)|*.*||",
  79.         this
  80.     );
  81.     if(dlg.DoModal() == IDOK) {
  82.         ctlFname().SetWindowText(dlg.GetPathName());
  83.     }
  84. }
  85.  
  86. void CSaveAsBitmapDialog::OnLimitDrillFlag()
  87. {
  88.     ctlLimitDrillSize().EnableWindow(ctlLimitDrillFlag().GetCheck());
  89. }
  90.  
  91. void CSaveAsBitmapDialog::OnChangeDpi()
  92. {
  93.     // TODO: Add your control notification handler code here
  94. }
  95.  
  96. BOOL CSaveAsBitmapDialog::OnInitDialog()
  97. {
  98.     CDialog::OnInitDialog();
  99.     ctlLimitDrillSize().EnableWindow(m_bLimitDrillFlag);
  100.     return TRUE;
  101. }
  102.  
  103. void CSaveAsBitmapDialog::OnOK()
  104. {
  105.     CDialog::OnOK();
  106.     m_sbinfo.m_dpi = m_nDPI;
  107.     m_sbinfo.m_fname = m_szFname;
  108.     m_sbinfo.m_limit_drill      = m_bLimitDrillFlag;
  109.     m_sbinfo.m_limit_drill_size = m_nLimitDrillSize;
  110.     m_sbinfo.m_fill = m_bFill;
  111.     m_sbinfo.m_hole = m_bHole;
  112.     m_sbinfo.m_layer[LAYER_PATTERN_COMMON] = m_bPCommon;
  113.     m_sbinfo.m_layer[LAYER_PATTERN_TOP   ] = m_bPTop   ;
  114.     m_sbinfo.m_layer[LAYER_PATTERN_BOTTOM] = m_bPBottom;
  115.     m_sbinfo.m_layer[LAYER_SILK_TOP      ] = m_bSTop   ;
  116.     m_sbinfo.m_layer[LAYER_SILK_BOTTOM   ] = m_bSBottom;
  117. }
  118. const SAVEASBMP_INFO& CSaveAsBitmapDialog::GetResult()
  119. {
  120.     return m_sbinfo;
  121. }
  122.